累积局部效应图

在部分依赖图的局限中, 我们提到了部分依赖图的假设前提, 必须是目标特征与非目标特征不相关, 在身高、体重与饭量的例子中, 我们看到了部分依赖图很有可能将不可能存在的样本也包含进效应的勾勒中, 从而导致最终的估计结果出现偏差。本节介绍的累积局部效应图可以很好地解决目标特征与非目标特征存在相关性的问题。

累计局部效应 (Accumulated Local Effect, ALE) 图由 Daniel W. Apley于 2016 年提出。从目的上来说, 累积局部效应图与部分依棗图想要解答的问题都是一样的:目标特征如何影响模型的预测结果。它们都源自于增强黑盒模型内部可紩释性这一诉求, 由于在现实世界的数据中,几抨很难找到目标特征与非目标特征完全不相关的情况, 因此部分依赖图的假设过于严格, 相比之 下,累积局部效应图的应用就更加广泛,而且限制更少。 在金融风控领域中, 对于风险敝口来源的解释尤为重要, 剥离特征之间的相关性, 从而得到单一特征对于风险的影响, 能够更好地辅助业务人员发现问题痛点, 有针对性地提升风险把控环节的安全性。比如, 贷款申请人的艺麻信用分, 往往会对违约率产生重要影响, 同时, 芝麻信用分往往也与申请人的收人、工作年限等因素具有较强的相关性, 很难想象一个年收入在六位数的成年人,其芝麻信用分会低于 600 。银行风控领域从业人员要想从量化的角度, 更好地了解芝麻信用分对于违约概率的影响, 累积局部效应图必不可少。

从部分依赖图到累积局部效应图

累积局部效应图解决目标特征与非目标特征之间的相关性问题, 其实非常简单, 下面就来具体分析, 我们先从回顾勾勒部分依赖图的步骤开始。 我们依然以年龄、身高、体重与饭量之间关系的探索为例进行讲解。绘制部分依赖图时, 我们首先设定目标特征为体重, 非目标特征为身高, 预测特征为饭量。设定目标特征后, 再设定固定区间, 将目标特征值格点化, 若想得到每个目标特征 的格点在图像上对应的预测值, 只需要将其他目标特征的值替换为该格点值, 用训练好的模型进行预测, 对预测值取平均值即可。将预测步骤重复至所有格点值,即可得到部分依赖图。

可是, 根据常识我们知道, 一个人的体重与他的年龄和身高具有很强的相关性, 这就违背了部分依赖图的假设。这时, 我们很自然地会想到一个排除相关性的方法, 就是通过固定非目标特征的取值排除相关性。比如, 固定年龄为 $20 \sim 24$ 岁, 身高处于 $170 \sim 190 \mathrm{~cm}$ 之间, 这样固定后的非目标特征值所对应的目标特征值, 就不会产生相关性了。若依然沿用 $X_S$ 代表目标特征, $X_C$ 代表非目标特征, 那么用数学符号来表示, 这种解决方式实际上是在计算 $E_{X_S}\left[X_S \mid X_C\right]$, 即目标特征的条件期 望值。通过这种方法得到的可视化图像, 称为边际图 (Marginal Plot)。这里需要额外强调的一点是, 虽然这个图像称为边际图, 但正如刚刚所说的,其描绘的实际上是条件期望。

此时, 边际图已经帮助我们解决了 “不真实数据” 这一问题, 那么, 另外一个重要的问题是, 此时, 目标特征的效应已经与非目标特征的效应混在了一起, 这就会导致边际图并没有单独展现目标特征对预测结果的影响。为了解决这一问题, 我们可以在边际图思想的基础上,引入所谓的差分思想 (differencein-differences), 具体而言就是, 假如我们想知道体重为 70 千克的人的饭量, 此时, 我们可以先固定年龄取值范围为 $20 \sim 24$ 岁, 身高取值范围为 $170 \sim 190 \mathrm{~cm}$, 之后分别计算当体重为 75 千克和 65 千克时, 饭量值的条件期望, 假设分别记为 $y^{w-75}$ 和 $y^{w-65}$, 之后计算 $\frac{y^{w-75}-y^{w=65}}{75-65}$, 就可以得到目标特征带来的效应的同时, 既保证了取值的真实性, 又保证了只考虑体重单一特征的影响。因此, 通过这种计算方式得到的可视化图像, 称为累积局部效应图 (Accumulated Local Effect Plot)。

累积局部效应方程

我们介绍了部分依赖图的数学支撑, 其实是求解目标特征的边际期望。本节我们将继续延续部分依赖图的数学方程, 进而推导出累积局部效应图的累积局部效应方程。

当特征为连续数值型时, 部分依赖方程的形式为: $$ \hat{f}\left(x_S\right)=E_{x_C}\left[\hat{f}\left(x_S, X_C\right)\right]=\int_{x_c} \hat{f}\left(x_S, x_C\right) P\left(x_C\right) \mathrm{d} x_C $$ 接下来, 我们可以基于上式思考边际图的方程。边际 图是确定目标特征取固定值后, 对非目标特征取积分(连续变 量的情况下), 进而求得目标特征对预测值影响的条件期望, 于是式可以变形为: $$ \begin{aligned} \hat{f}\left(x_S\right) &=E_{X_C \mid X_S}\left[\hat{f}\left(X_S, X_C\right) \mid X_S=x_S\right] \\ &=\int_{x_c} \hat{f}\left(x_S, x_C\right) P\left(x_C \mid x_S\right) \mathrm{d} x_C \end{aligned} $$ 下面我们在边际图方程的基础上,继续思考如何在方程中 体现累积局部效应。上文中我们提到过, 若想保证只考虑目标特征的单独效应, 则需要对目标特征进行差分运算,假设目标特征 $X_S$ 同样也是连续的数值型变量, 则基于式 (4-7)加人差分 运算后 (对于连续变量即为积分) 的结果为: $$ \begin{aligned} \hat{f}\left(x_S\right) &=\int_{x_S-\delta}^{x_S^{+\delta}} E_{X_C \mid x_S}\left[\hat{f}\left(X_S, X_C\right) \mid X_S=x_s\right] \mathrm{d} x_S \\ &=\int_{x_S-\delta}^{x_S^{+\delta}} \int_{x_c} \hat{f}\left(x_S, x_C\right) P\left(x_C \mid x_S\right) \mathrm{d} x_C \mathrm{~d} x_S \end{aligned} $$ 至此, 我们的局部累积效应方程即将完成, 目前只差一步,这个过程称为中心化。这么做的原因是为了使数据的平均效应为 0 。所以最终加人中心化后, 局部累积方程为: $$ \begin{aligned} \hat{f}\left(x_S\right) &=\int_{x_S-f}^{x_S+8} E_{X_C \mid X_S}\left[\hat{f}\left(X_S, X_C\right) \mid X_S=x_S\right] \mathrm{d} x_S-\tilde{f}\left(x_S\right) \\ &=\int_{x_s-8}^{x_s+8} \int_{x_c} \hat{f}\left(x_S, x_C\right) P\left(x_C \mid x_S\right) \mathrm{d} x_C \mathrm{~d} x_S-\tilde{f}\left(x_S\right) \end{aligned} $$ 其中, $\tilde{f}\left(x_S\right)$ 是所有 $\hat{f}\left(x_S\right)$ 的均值。局部累积效应方程与部分依赖方程有一个同样的问题, 那就是在工程实践中, 我们无法计算积分, 需要找到一个来估计, 该方法的计算结果需要是式的无偏估计量, 进而实现局部累积效应图的描绘。

当我们拿到一个数据集时, 假设 $X_S$ 和 $X_C$ 都是连续型变 量, 首先设定特征的区间。延续之前身高、体重与饭量的例 子, 假设数据集中身高的取值范围是 $(120 \mathrm{~cm}, 190 \mathrm{~cm}]$, 体重 的取值范围是 $(40 \mathrm{~kg}, 100 \mathrm{~kg}]$, 目标特征依然为体重, 非目标 特征为身高, 预测值为饭量, 根据数据集中的体重取值范围, 我们可以设定 $5 \mathrm{~kg}$ 为一个区间, 也就是将体重分割为了 12 个 区间,假设每个区间的体重取值标记为 $\left(x_S^{k-1}, x_S^k\right]$, 那么某一目标特征区间内, 尚末中心化的局部累积效应估计方式可以用 如下方程表示: $$ \hat{f_k}\left(x_S\right)=\sum_{k=1}^{k_k(x)} \frac{1}{n_j(k)} \sum_{i_1, x_{C_j}^{(i)} \in N_j(k)}\left[f\left(x_S^k, x_{C_j}^{(i)}\right)-f\left(x_S^{k-1}, x_{C j}^i\right)\right] $$ 或许, 方程中的各种上标下标会让人感觉头晕脑胀, 但用语言解释起来其实非常简单:在某一区间内,令目标特征取值分别为 $x_S^{k-1}$ 和 $x_S^k$, 用训练好的模型在目标特征取值不变的情况下, 分别遍历区间内的所有样本并进行预测, 之后分别取平均值, 用 $x_s^k$ 对应的平均值减 $x_s^{k-1}$ 对应的平均值, 就可以得到 这一区间内,尚末中心化的目标特征的累积局部效应。

用上面提到的例子来说就是, 当 12 个区间的未中心化的局部累积效应全部计算完毕后, 对这 12 个值取平均值,就找到了式中的 $\tilde{f}\left(x_S\right)$, 继而就可以求得中心化的局部累积效应了。

ALE 方法的优劣

综合以上 ALE 的计算与实例, 我们可以总结出 ALE 图具 有如下三个优点。 1) 在计算 ALE 的估计值时, 该估计值是无偏估计, 因此 做出的图像也是无偏的。同时, 由于 ALE 能够处理特征之间 的相关关系, 因此做出的图像不会受到联合效应的影响。
2) ALE 的计算速度比 PDP 快, 需要计算的次数少 于 PDP。
3) 与 PDP 一样, ALE 也能直观地展示目标特征是如何影 响模型的预测的, 由于剥离了相关变量的影响, 因此 ALE 的 解释更加准确; ALE 图的曲线是中心化的, 曲线的取值即为 平均预测值的变化, 解释更加清楚简洁。
当然, ALE 方法同样也存在一些问题。比如, 如何确定 区间, 到底确定多少个区间才比较合适, 等等。这些都需要作 进一步的研究与探讨, 从而导致 ALE 的落地部署应用存在困 难。与 ICE 图不同的是, ALE 图无法作出单个样本的局部解 释, 若使用者想要知道不同样本的特征取值发生变化时, 其预测结果的变化是否相同, 那么 ALE 是无法给出答案的。

参考资料: